package main.java.br.com.projeto.domain.entity;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name="servico_os")
public class ServicoOS extends EntityAbstract {
	/**
	 * 
	 */
	private static final long serialVersionUID = -1753374564586125168L;

	@ManyToOne(fetch=FetchType.EAGER, optional=false)
	private Cliente cliente;
	
	@Column
	private Date data;
	
	@Column
	private Date hora;

	@ManyToOne(fetch=FetchType.EAGER, optional=false)
	private Servico servico;

	@ManyToOne(fetch=FetchType.EAGER, optional=false)
	private Funcionario funcionario;

//	@Column(length=50, name="num_os", nullable=true)
//	private Long numOS;
	
//	@Column(name="funcionario_id")
//	private Long funcionarioId;
//	
//	@Column(name="servico_id")
//	private Long servicoId;

	@ManyToOne(fetch=FetchType.LAZY, optional=false)
	private OrdemServico ordemServico;
	
	@Column
	private Float valor;
	
	@Column
	private Integer quantidade;
	
	@Column
	private Float total;
	
	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public Date getData() {
		return data;
	}

	public void setData(Date data) {
		this.data = data;
	}

	public Date getHora() {
		return hora;
	}

	public void setHora(Date hora) {
		this.hora = hora;
	}

//	public Long getNumOS() {
//		return numOS;
//	}
//
//	public void setNumOS(Long numOS) {
//		this.numOS = numOS;
//	}

	public Servico getServico() {
		return servico;
	}

	public void setServico(Servico servico) {
		this.servico = servico;
	}

	public Funcionario getFuncionario() {
		return funcionario;
	}

	public void setFuncionario(Funcionario funcionario) {
		this.funcionario = funcionario;
	}

	public Float getValor() {		
		return calculaValor();
	}

	public void setValor(Float valor) {
		this.valor = valor;
	}
	
	public Float calculaValor() {
		float valor = this.servico.getValorMaoObra()+this.servico.getValorServico();
		return valor;
	}

	public OrdemServico getOrdemServico() {
		return ordemServico;
	}

	public void setOrdemServico(OrdemServico ordemServico) {
		this.ordemServico = ordemServico;
	}

	public Integer getQuantidade() {
		return quantidade;
	}

	public void setQuantidade(Integer quantidade) {
		this.quantidade = quantidade;
	}

	public Float getTotal() {
		return total;
	}

	public void setTotal(Float total) {
		this.total = total;
	}

	
}
